package pe.edu.unmsm.fisi.sisconteg.domain.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

/**
 * @author Carlos y Marlon
 */
@Entity
@Table(name = "tb_tesis", catalog = "bdsisconteg")
public class Tesis implements java.io.Serializable {

	private Long idTesis;
	private Egresado egresado;
	private String titulo;
	private Long tipo;
	private Boolean flagTesisTesina;

	public Tesis() {
	}

	public Tesis(Egresado egresado) {
		this.egresado = egresado;
	}

	public Tesis(Egresado egresado, String titulo, Long tipo,
			Boolean flagTesisTesina) {
		this.egresado = egresado;
		this.titulo = titulo;
		this.tipo = tipo;
		this.flagTesisTesina = flagTesisTesina;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "C_ID_TESIS", unique = true, nullable = false)
	public Long getIdTesis() {
		return this.idTesis;
	}

	public void setIdTesis(Long idTesis) {
		this.idTesis = idTesis;
	}

	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "N_ID_EGRESADO", nullable = false)
	public Egresado getEgresado() {
		return this.egresado;
	}

	public void setEgresado(Egresado egresado) {
		this.egresado = egresado;
	}

	@Column(name = "T_TITULO_TESIS", length = 150)
	public String getTitulo() {
		return this.titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	@Column(name = "N_TIPO_TESIS", precision = 10, scale = 0)
	public Long getTipo() {
		return this.tipo;
	}

	public void setTipo(Long tipo) {
		this.tipo = tipo;
	}

	@Column(name = "B_FLAG_TESIS")
	public Boolean getFlagTesisTesina() {
		return this.flagTesisTesina;
	}

	public void setFlagTesisTesina(Boolean flagTesisTesina) {
		this.flagTesisTesina = flagTesisTesina;
	}

}
